10 y$="                ":poke53272,21:poke657,128
80 poke53280,0:poke53281,6:dima%(15),b%(14,3)
90 forx=0to15:a%(x)=x+1:next
100 print"“£   r ’  r   ’ r   ’ r ’ r   ’   r   ’ r   ’ r ’  r ’ r   "
110 print"   r ’  r ’ r ’ r ’   r ’ r ’     r ’   r ’ r ’ r ’©r ’ r ’"
120 print"   r ’  r ’ r ’ r   ’ r ’ r ’     r   ’ r   ’ r ’  r ’ r  ’"
130 print"   r ’  r ’ r ’ r ’ r ’ r ’ r ’     r ’ r ’ r ’ r ’ r ’  r ’ r ’"
140 print"   r  ’ r   ’ r   ’ r ’ r   ’   r   ’ r ’ r ’ r ’  r ’ r   ’"
150 print:print"r‘      ovvero: disattiva la bomba        "
160 print"ržgioco a combinazione  su logica booleana";
170 print"ideato da    b.carlo    nell'agosto 1986"
180 printtab(10);"qqq1=spiegazione    "
190 printtab(10);"return=gioco"
200 geta$:ifa$=""then200
210 i=asc(a$):ifi=13then580
220 ifi<>49then200
230 print"“rž                il gioco                "
231 print"il gioco consiste nello scoprire, attra=";
232 print"verso  l'analisi  di un circuito logico,";
233 print"la chiave che pone l'uscita del circuito";
234 print"a -1-, disattivando la bomba."
235 print"le cifre della chiave sono sedici e pos=";
236 print"sono  essere ciascuna -0- o -1-. quindi,";
237 print"si possono  avere 65535 combinazioni di=";
238 print"verse ed una sola esatta.  il gioco deve";
239 print"svolgersi entro un tempo limite che  po=";
240 print"trete  fissare  voi o  far scegliere  al";
241 print"computer.  anche la  chiave puo'  essere";
242 print"prestabilita per far giocare altri."
243 print"ciascuna combinazione ammette molteplici";
244 print"schemi differenti; sara' sempre il  com=";
245 print"puter  ad elaborare e presentare una tra";
246 print"le tante possibilita',scelta in modo ca=";:print"suale.qqqqq"
249 printtab(25);"rpremi un tasto";
250 geta$:ifa$=""then250
251 print"“r         le porte, gli inverter         "
252 print"per problemi  di video, le porte logiche";
253 print"che formano il gioco, sono rappresentate";
254 print"da linee  orrizzontali,  ciascuna avente";
255 print"tre'  nodi (due ingressi  ed una uscita)";
256 print"che  opportunamente collegati formano il";
257 print"circuito  logico. l'uscita di una porta,";
258 print"si trasferisce  all'ingresso di un'altra";
259 print"secondo  una conbinazione  logica. cono=";
260 print"scendo il comportamento delle porte, bi=";
261 print"sogna portare a  -1- l'ultima uscita at=";
262 print"traverso il posizionamento  di -0- o -1-";
263 print"sugli ingressi disponibili."
264 print"gli ingressi e le uscite sono rappresen=";
265 print"tate con  un 'W' o con 'Q' a seconda che";
266 print"siano invertite o non."
267 print"l'uscita  si differenzia  dagli ingressi";
268 print"perche' di colore rosso chiaro."
269 print"il  tipo di porta (-and- oppure -or-) e'";
270 print"indicato a  sinistra della linea con una";
271 print"r&’ per l'and; con ro’ per l'or.qq"
272 printtab(25);"rpremi un tasto";
273 geta$:ifa$=""then273
274 print"“rla porta -and-q"
275 print"questa porta  pone la sua uscita  a  -1-";
276 print"solo se abbiamo il valore -1- su ambedue";
277 print"gli ingressi. ecco la sua tavola.qq"
278 print"                   °CCCCCC²CCCCCC²CCCC®"
279 print"      usc.–CCCCCC®ž  Bingr.1Bingr.2Busc.B"
280 print"                –Bž  «CCCCCC{CCCCCC{CCCCB"
281 print"                –Bž  B  0   B  0   B  0 B"
282 print" r&’ eQCCCCCCCQCCCC–Qž  «CCCCCC{CCCCCC{CCCC³"
283 print"   B       B       B  0   B  1   B  0 B"
284 print"   B       B       «CCCCCC{CCCCCC{CCCC³"
285 print"   B       B       B  1   B  0   B  0 B"
286 print"   B       B       «CCCCCC{CCCCCC{CCCC³"
287 print"ingr.1  ingr.2     B  1   B  1   B  1 B"
288 print"                   ­CCCCCC±CCCCCC±CCCC½qqqqqq"
289 printtab(25);"rpremi un tasto";
290 geta$:ifa$=""then290
291 print"“rla porta -or-q"
292 print"questa porta  pone la sua uscita  a  -1-";
293 print"se ad un  qualsiasi ingresso e' presente";
294 print"il valore -1-. ecco la sua tavola.qq"
295 print"                   °CCCCCC²CCCCCC²CCCC®"
296 print"      usc.–CCCCCC®ž  Bingr.1Bingr.2Busc.B"
297 print"                –Bž  «CCCCCC{CCCCCC{CCCCB"
298 print"                –Bž  B  0   B  0   B  0 B"
299 print" ro’ eQCCCCCCCQCCCC–Qž  «CCCCCC{CCCCCC{CCCC³"
300 print"   B       B       B  0   B  1   B  1 B"
301 print"   B       B       «CCCCCC{CCCCCC{CCCC³"
302 print"   B       B       B  1   B  0   B  1 B"
303 print"   B       B       «CCCCCC{CCCCCC{CCCC³"
304 print"ingr.1  ingr.2     B  1   B  1   B  1 B"
305 print"                   ­CCCCCC±CCCCCC±CCCC½qqqqqq"
306 printtab(25);"rpremi un tasto";
307 geta$:ifa$=""then307
308 print"“rl'inverterq"
309 print"l'inverter  puo' essere  presente  negli";
310 print"ingressi come nelle  uscite delle porte.";
311 print"viene raffigurato come indicato a fianco";
312 print"della tavola. opera l'inversione del va=";
313 print"lore  0-1  da applicare alla porta od in";
314 print"uscita dalla stessa.q"
315 print"                    °CCCCCCCC²CCCCCCCC®"
316 print"                    Bnormale BinverterB"
317 print"                    «CCCCCCCC{CCCCCCCC³"
318 print" eQž=normale          B 0=0    B 0=1    B"
319 print" eWž=invertito        «CCCCCCCC{CCCCCCCC³"
320 print"                    B 1=1    B 1=0    B"
321 print"                    ­CCCCCCCC±CCCCCCCC½q"
322 print"spesso il computer non possiede lo  spa=";
323 print"zio sufficiente a disegnare le linee che";
324 print"collegano le entrate-uscite tra' le por=";
325 print"te; in  questo caso  e' necessario saper";
326 print"dedurle dalla loro disposizione logica.":print"buon divertimento.q"
327 printtab(25);"rpremi un tasto";
330 geta$:ifa$=""then330
580 print"“er           disattiva la bomba           qqqqqqq"
590 print"se vuoi fornire il codice per altri gio=";
600 print"catori digita la chiave, oppure - return"
610 print"................":x$="":print"‘‘"
620 forx=1to16:poke204,0:k=1024+peek(211)+40*peek(214)
630 geta$:poke207,0:ifa$=""then630
640 i=asc(a$):ifi=48ori=49ori=13ori=20then650
645 goto630
650 ifi<>13then680
660 ifx$=""thenx=16:goto740
670 iflen(x$)<16thenx$="":goto660
680 ifi<>20then700
690 ifx$<>""thenx$=left$(x$,(len(x$)-1)):print".";:x=x-1:goto630
700 x$=x$+a$:printa$;
740 nextx:poke204,1:print:pokek,peek(k)and127:print"q"
745 forx=1504to1519:pokex,32:next
750 ifx$<>""then790
760 forx=1to16:a=int(rnd(1)*2+1):ifa=1thenx$=x$+"1":goto780
770 x$=x$+"0"
780 nextx
790 print"tempo (in minuti) ..";:kk=0:a$=""
800 forx=1to2:poke204,0:k=1024+peek(211)+40*peek(214)
810 geta$:poke207,0:ifa$=""then810
820 i=asc(a$):ifi=13then850
830 ifi=20then870
840 ifi<48ori>57then810
845 goto890
850 ifkk=0thenx=2:goto910
860 kk=kk/10:x=2:goto910
870 ifkk<>0thenprint".";:kk=0
880 x=1:goto810
890 printa$;:ifkk=0thenkk=(i-48)*10:goto910
900 kk=kk+(i-48)
910 nextx:poke204,1:print:pokek,peek(k)and127
920 ifkk>0andkk<60then940
925 ifkk>=60thenkk=0:printtab(18);"‘..";:goto800
930 kk=int(rnd(1)*10+1):printtab(17);"‘";kk
940 print"“":printtab(10);"qqqqqqqqqqattendere prego"
970 forx=0to29:c=0:a=int(rnd(1)*15)
980 ifb%(a,0)<>0andb%(a,1)<>0then1020
990 ifb%(a,0)=0andb%(a,1)<>0thenb=0:c=a+17:goto1065
1000 ifb%(a,0)<>0andb%(a,1)=0thenb=1:c=a+17:goto1065
1010 b=int(rnd(1)*2):goto1070
1020 ifa<7thena=a-1
1030 ifa>6thena=a+1
1040 ifa=-1thena=7
1050 ifa>14thena=6
1060 goto980
1065 d=int(rnd(1)*16)
1070 ifa%(d)<>0thenb%(a,b)=a%(d):a%(d)=c:goto1130
1080 ifd<8thend=d-1
1090 ifd>7thend=d+1
1100 ifd<0thend=8
1110 ifd>15thend=7
1120 goto1070
1130 ifb%(a,0)=0orb%(a,1)=0then1230
1140 c=b%(a,0):d=b%(a,1):ifc>16thenc=c-17:c=b%(c,3):goto1160
1150 c=val(mid$(x$,c,1))
1160 ifd>16thend=d-17:d=b%(d,3):goto1180
1170 d=val(mid$(x$,d,1))
1180 e=0:f=int(rnd(1)*4):iff>1thene=1
1190 ifc=0andd=1thenb%(a,2)=1+f:b%(a,3)=e
1200 ifc=1andd=0thenb%(a,2)=5+f:b%(a,3)=e
1210 ifc=1andd=1thenb%(a,2)=9+f:b%(a,3)=e
1220 ifc=0andd=0thenb%(a,2)=13+f:b%(a,3)=e
1230 nextx
1240 m=0:forx=0to15:ifa%(x)<>0thenm=a%(x)-17
1250 nextx:ifb%(m,3)=0thenb%(m,2)=b%(m,2)+2:b%(m,3)=1
1260 a=0:forx=0to14:ifb%(x,0)<17thena%(a)=b%(x,0):a=a+1
1270 ifb%(x,1)<17thena%(a)=b%(x,1):a=a+1
1280 nextx:y=1226:print"“"
1290 forx=0to14
1300 b=b%(x,1)-b%(x,0):ifb>0then1350
1310 a=b%(x,0):b%(x,0)=b%(x,1):b%(x,1)=a
1320 ifb%(x,2)>4andb%(x,2)<9thenb%(x,2)=b%(x,2)-4:goto1350
1330 ifb%(x,2)>0andb%(x,2)<5thenb%(x,2)=b%(x,2)+4
1350 a=b%(x,2):b=abs(b):ifa/2=int(a/2)then1370
1360 pokey,143:pokey+54272,10:goto1380
1370 pokey,166:pokey+54272,10
1380 c=y+b%(x,0)
1385 ifa=1ora=3ora=6ora=8ora=10ora=12ora=13ora=15then1405
1400 pokec,87:pokec+54272,1:goto1410
1405 pokec,81:pokec+54272,1
1410 forz=c+1toc+b-1:pokez,67:pokez+54272,1:nextz
1420 z=c+b:ifa=1ora=3ora=6ora=8ora=9ora=11ora=14ora=16then1440
1430 pokez,81:poke54272,1:goto1500
1440 pokez,87:poke54272,1
1500 y=y+40:nextx
1510 forx=0to14:y=1266:mm=b%(x,0)
1520 y=y+mm:y=y+x*40:ifmm>16then1560
1530 a=17-x:forc=1toa:b=peek(y):ifb<>67thenpokey,66:pokey+54272,7:goto1550
1540 pokey,91
1550 y=y+40:nextc:goto1675
1560 a=mm-x-17:ifa<0theny=y-80
1565 forc=1toabs(a):ifc=abs(a)then1610
1570 b=peek(y):ifb<>67thenpokey,66:pokey+54272,10:goto1590
1580 pokey,91:pokey+54272,1
1590 ifa<0theny=y-40:goto1610
1600 y=y+40
1610 nextc:a=mm-17:a=b%(a,2)
1620 ifa=2ora=3ora=4ora=6ora=7ora=10ora=11ora=14ora=15then1640
1630 pokey,81:pokey+54272,10:goto1641
1640 pokey,87:pokey+54272,10
1641 a=mm-17
1642 ifb%(a,0)>mmtheny=y+1:goto1655
1643 y=y-1
1655 ifpeek(y)=66thenpokey,91:poke54272+y,1:goto1642
1660 ifpeek(y)=81orpeek(y)=87orpeek(y)=67orpeek(y)=91thenpoke54272+y,1:goto1675
1670 pokey,67:pokey+54272,1:goto1642
1675 ifmm=b%(x,0)thenmm=b%(x,1):y=1266:goto1520
1680 nextx
1690 b=32-b%(m,1):y=1227+m*40+b%(m,1)
1700 forc=ytoy+b:ifpeek(c)=66thenpokec,91:pokec+54272,1:goto1715
1710 pokec,67
1715 :nextc
1720 a=b%(m,2):ifa=2ora=3ora=4ora=6ora=7ora=10ora=11ora=14ora=15then1740
1730 pokec,81:pokec+54272,10:goto1750
1740 pokec,87:pokec+54272,10
1750 forx=mto16:c=c+40:pokec,66:pokec+54272,10:nextx
1760 forx=0to14:b%(x,0)=0:b%(x,1)=0:b%(x,2)=0:b%(x,3)=0:nextx
1780 print"r‘tempo concesso:’e";kk:printtab(20);"‘‘rcronometro:’ e00:00"
1790 ti$="000000":a=1947:poke204,0:print"qqqqqqqqqqqqqqqqqqqqq]]]";
1980 geta$:b=asc(mid$(ti$,3,1)):c=asc(mid$(ti$,4,1))
1990 d=asc(mid$(ti$,5,1)):e=asc(mid$(ti$,6,1)):poke1096,b:poke1097,c:poke1099,d
2000 poke1100,e:b=(b-48)*10+c-48:ifx$=y$thenpoke204,1:goto2100
2010 ifkk=bthenpoke204,1:goto2140
2020 ifa$=""then1980
2030 i=asc(a$):ifi=13thenpoke204,1:pokea,peek(a)and127:goto2200
2035 ifi<>29then2047
2040 pokea,peek(a)and127
2045 ifa<1962thena=a+1:poke211,peek(211)+1:pokea,peek(a)and127
2047 ifi<>157then2060
2050 pokea,peek(a)and127
2055 ifa>1947thena=a-1:poke211,peek(211)-1:pokea,peek(a)and127
2060 ifi<48ori>49thenpokea,peek(a)and127:goto1980
2070 pokea,i:pokea+110,i:pokea,peek(a)and127
2080 ifa<1962thenpoke(211),peek(211)+1:a=a+1:pokea,peek(a)and127:goto1980
2090 pokea,peek(a)and127:a=1947:poke211,3:goto1980
2100 printtab(19);"‘erbravo! hai vinto’ 1"
2110 printtab(25);"premi un tasto"
2120 geta$:ifa$=""then2120
2130 goto2250
2140 forx=0to15:fory=0to15:poke53280,x:poke53281,y:nexty,x:poke53280,0
2150 poke53281,6:print"sqqerpazienza, hai perso ma almeno hai tenta=";
2160 print"to. ecco la chiave’ ";x$
2170 print"premi un tasto"
2180 geta$:ifa$=""then2180
2190 goto2250
2200 print"sqqeressendo un gioco accetto il tuo  ritiro;";
2210 print"ma nella realta' ti comporteresti cosi'?";
2220 print"la chiave’ ";x$;"rpremi un tasto’";
2230 geta$:ifa$=""then2230
2250 print"“qqqqqqqq]]]]]]]giochi ancora? n/s=return"
2255 a=0:b=0:c=0:d=0:e=0:f=0
2260 forx=2057to2072:pokex,32:next
2265 geta$:ifa$=""then2265
2270 i=asc(a$):ifi=13ori=83then580
2280 ifi=78thenprint"“":poke53280,14:end
2290 goto2260
2300 rem programma -logic game- gioco didattico di logica combinatoria
2310 rem ideato nell'agosto 1986 da burin carlo
2320 rem via ca' michiel 20 - 31040 meduna di liv - tv
